package dao.CourseDao;

import common.model.Entity.courseEntity.CourseLocation;
import dao.BaseDao;

import java.util.List;
import java.util.Optional;

/**
 * 课程教室数据访问接口，继承 BaseDao，提供课程教室相关的数据库操作。
 */
public interface CourseLocationDao extends BaseDao<CourseLocation,Long> {

    /**
     * 根据教学楼查找所有教室
     * @param building 教学楼名称
     * @return 该教学楼下的教室列表
     */
    List<CourseLocation> findByBuilding(String building);

    /**
     * 根据教室号查找教室
     * @param roomNumber 教室号
     * @return 匹配的教室列表
     */
    List<CourseLocation> findByRoomNumber(String roomNumber);

    /**
     * 根据教学楼和教室号查找唯一教室
     * @param building 教学楼名称
     * @param roomNumber 教室号
     * @return 若存在返回 Optional 包含教室对象，否则返回 Optional.empty()
     */
    Optional<CourseLocation> findByBuildingAndRoomNumber(String building, String roomNumber);
}
